The Internet is a global interconnection of computer networks that share a common set of data communication protocols. Most computers on the global Internet use the Transport Control Protocol layer and the Internet Protocol layer commonly referred to together as the TCP/IP standard protocols. By sharing a set of nonproprietary well-defined data communication protocols, the Internet allows almost any computer system on the Internet to communicate with any other computer system on the Internet. Initially, most Internet users used the Internet for electronic mail (email), file transfers, discussion groups, and email using the simple mail transport protocol (SMTP), the file transfer protocol (FTP), and the network news transport protocol (NNTP), respectively.
One particular transport protocol, known as the HyperText Transport Protocol (HTTP), was created for sharing HyperText Markup Language (HTML) documents as well as other types of documents that are referenced by an HTML document. The creation of HTTP and HTML enabled Internet users to easily create media-rich documents that could easily be shared. The media-rich documents are “browsed” using an HTTP/HTML browser program. Each shared HTML document can refer to other HTML documents using hypertext links (also known as hyperlinks). By linking together HTML documents located on various servers throughout the world using embedded hyperlinks, a “World Wide Web” (WWW) of interconnected hypertext documents was created. Due to the simple, yet very powerful nature of HTML and HTTP, the World Wide Web (WWW) portion of the Internet has grown into the most popular form of Internet communication.
The modern HTML and HTTP standards include provisions for handling two-way communication. Specifically, an HTTP server may send an HTML “form” to a user's client browser program. The client browser program may present a user with an HTML “form” that contains parameters that can be filled-in by the user. Once filled in, the browser program may send back the user-completed parameters to the server. The server system may then use the parameters entered by the user. Modern web servers also generate dynamic content. Dynamic content is content that is created “on the fly.” For example, to verify the entries in an HTML form, a web server may generate a web page that displays the user-entered parameters back to the user.
With these interactive and dynamic HTML and HTTP features, companies have created commercial WWW sites that can perform financial transactions. For example, a retailer may create a set of HTML documents that describe various products available for sale. The retailer may then provide HTML form documents that allow a user to specify a desired product, provide a shipping address, and provide a credit card to pay for the desired product. To verify a particular transaction, the web site must generate dynamic web pages that contain transaction specific information such as the purchaser's address and product selection. With such commerce based Internet web sites, the Internet has become the new frontier of retail commerce.
Initially, such interactive and dynamic Internet web sites were created with the common gateway interface (CGI). Using a common gateway interface, a web server calls an external application as needed to perform desired processing. Using a common gateway interface for processing is not efficient since an external application must be loaded, executed, and unloaded for each user request. To provide greater efficiency, Netscape and Microsoft introduced the NSAPI and ISAPI interfaces, respectively. These interfaces allowed for the creation of in-process plug-ins that could do the same things as CGI. However these proprietary technologies were not interoperable.
Java Server Pages and Java “Servlets” were later introduced as another method of creating interactive and dynamic web sites. Java Server Pages (JSP) were created to allow an Internet server to directly perform needed processing for an interactive web site. A Java Server Page is an HTML document that is mixed with Java code to provide interactive features. Java Server Pages may be compiled into Java servlets that are directly executed by an Internet server to provide dynamic content.
The intermixed web page design HTML code and Java code in a Java Server page has been a source of difficulty in web site creation projects. It is not clear as to whether an HTML designer or a Java programmer controls the code. Java Server Page code is often mishandled by third-party web authoring tools. Furthermore, the flow of control of the Java program in a JSP is obscured by the HTML code. Thus, it was desirable to have a different method of creating interactive web sites that does not use such a confusing intermix of two different types of code.
The Enhydra project (http://www.enhydra.org/) was created to offer a different development system for creating interactive web sites having dynamic content. The Enhydra system operates by inserting less obtrusive dynamic content tags into web page HTML to provide dynamic content to otherwise static web pages. The dynamic content tags specify wherein dynamic content must be provided by program code. A programmer then writes separate application Java code to provide the desired dynamic content for the web page portions identified with dynamic content tags. To link the static web page HTML and the Java code that provides dynamic content, the web page HTML is compiled with a special XMLC compiler that outputs web page Java code that can be used to regenerate the designed web page. Then, that generated web page Java code and programmer-written application Java code are compiled and linked together to create a final Java Servlet that is deployed on a server.
Although the Enhydra system provides a better separation of design (HTML) from logic (Java interactive code), the Enhydra system has its own problems. One significant problem with the Enhydra system is that the design and deployment process is long and nontrivial. Every change to the web page design requires a recompilation of the web page with the XMLC compiler and relinking with the programmer-written dynamic content Java code. Thus, it is not easy to quickly make adjustments to an Interactive Web site developed with the Enhydra system. Thus, it would be desirable to have a development system for interactive web sites that allows such interactive web sites to be easily created and edited.